package b;

import org.junit.Test;
import 笔试.A;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class 砖墙 {

    public int 砖墙(List<List<Integer>> wall) {
        Map<Integer,Integer> map=new HashMap<>();
        for(List<Integer> tmp:wall){
            //前缀和
            int cS=0;
            for(int x:tmp){
                cS+=x;
                map.put(cS,map.getOrDefault(cS,0)+1);
            }
        }
        System.out.println(map);
        //
        //随便拿一行求一下右边界是多大
        int r=0;
        List<Integer> list = wall.get(0);
        for(int v:list)r+=v;
        //
        int maxSum=0;
        for(int key:map.keySet()){
            if(key==1 || key==r)continue;
            maxSum=Math.max(map.get(key),maxSum);
        }
        //
        return wall.size()-maxSum;
    }

    @Test
    public void test() {
        List<List<Integer>>res=new ArrayList<>();
        List<Integer> a=new ArrayList<>();
        a.add(1);
        a.add(2);
        a.add(2);
        a.add(1);
        res.add(new ArrayList<>(a));
        a=new ArrayList<>();
        a.add(3);
        a.add(1);
        a.add(2);
        res.add(new ArrayList<>(a));
        res.add(new ArrayList<>(a));
        a=new ArrayList<>();
        a.add(1);
        a.add(3);
        a.add(2);
        res.add(new ArrayList<>(a));
        a=new ArrayList<>();
        a.add(2);
        a.add(4);
        res.add(new ArrayList<>(a));
//        System.out.println(res);
        System.out.println(砖墙(res));
    }
}
